package com.hy.proxy.core.entity;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import com.hy.proxy.common.CipherUtils;
import lombok.Data;

import java.io.Serializable;

/**
 * @Author: hy
 * @Date: Created in 2019/9/29/20:47
 * @Description: 这个是为了解决SSR类尚未解决的就关于是否和ss通用的问题而临时创建的
 * @Version: 1.0
 */
@Data
public class SS extends Proxy implements Serializable {

    /**
     * 国家
     */
    @Expose
    private String country;

    /**
     * 更新时间
     */
    @Expose
    private String data;

    /**
     * 加密方式
     */
    @Expose
    private String method;

    /**
     * 密码
     */
    @Expose
    private String password;

    /**
     * 服务器地址
     */
    @Expose
    private String server;

    /**
     * 端口
     */
    @Expose
    @SerializedName("server_port")
    private int serverPort;

    /**
     * ss链接
     */
    @Expose
    @SerializedName("sslink")
    private String ssLink = null;

    public String getSsLink() {

        if (ssLink == null || "".equals(ssLink.trim())) {
            StringBuilder sb = new StringBuilder();
            sb.append(method);
            sb.append(":");
            sb.append(password);
            sb.append("@");
            sb.append(server);
            sb.append(":");
            sb.append(serverPort);

            //最后的#IrisHhhhhhhy是备注，在需要解密时则要删除才可以解密
            return "ss://" + CipherUtils.BASE64.encoder(sb.toString().toLowerCase()) + "#IrisHhhhhhhy";
        }

        return ssLink;
    }

}
